package com.dingreading.cloud.app.util.wxtemplate;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

/**
 * 模板消息工具
 */
@RefreshScope
@Component
public class TemplateMessUtils {

    @Value("${wx.template.signIn}")
    private String signIn;
    @Value("${wx.template.signOut}")
    private String signOut;
    @Value("${wx.template.enroll}")
    private String enroll;
    @Value("${wx.template.memberDue}")
    private String memberDue;
    @Value("${wx.template.joinApply}")
    private String joinApply;

    public static TemplateMessUtils util;

    @PostConstruct
    public void init() {
        util = this;
    }

    /**
     * 签到成功模板
     *
     * @param openid    服务号内的微信用户openid
     * @param name      用户姓名
     * @param storeName 门店名
     * @param time      时间，yyyy-MM-dd hh:mm:ss
     */
    public static String signIn(String openid, String name, String storeName, String time, String remark) {
        String build = TemplateData.New()
                .setTouser(openid)
                .setTemplate_id(util.signIn)
                .setUrl("")
                .add("first", "签到提醒", "")
                .add("keyword1", name, "")
                .add("keyword2", storeName, "")
                .add("keyword3", time, "")
                .add("remark", "", "")
                .build();
        return build;
    }

    /**
     * 签退成功模板
     *
     * @param openid    服务号内的微信用户openid
     * @param name      用户姓名
     * @param storeName 门店名
     * @param time      时间，yyyy-MM-dd hh:mm:ss
     * @param remark    备注
     */
    public static String signOut(String openid, String name, String storeName, String time, String remark) {
        String build = TemplateData.New()
                .setTouser(openid)
                .setTemplate_id(util.signOut)
                .setUrl("")
                .add("first", "签退提醒", "")
                .add("keyword1", name, "")
                .add("keyword2", storeName, "")
                .add("keyword3", time, "")
                .add("remark", "", "")
                .build();
        return build;
    }

    /**
     * 会员到期模板，提前两周提醒
     *
     * @param openid    服务号内的微信用户openid
     * @param name      会员名字
     * @param startTime 开始时间 ，yyyy-MM-dd
     * @param endTime   结束时间，，yyyy-MM-dd
     */
    public static String memberDue(String openid, String name, String startTime, String endTime) {
        String first = String.format("您好，会员%s即将过期！", name);
        String build = TemplateData.New()
                .setTouser(openid)
                .setTemplate_id(util.memberDue)
                .setUrl("")
                .add("first", first, "")
                .add("keyword1", startTime, "")
                .add("keyword2", endTime, "")
                .add("remark", "感谢您的使用", "")
                .build();
        return build;
    }

    /**
     * 报名成功模板
     *
     * @param openid       服务号内的微信用户openid
     * @param name         用户姓名
     * @param activityName 活动名
     * @param startTime    活动开始时间，yyyy-MM-dd
     * @param endTime      活动结束时间，yyyy-MM-dd
     */
    public static String enroll(String openid, String name, String activityName, String startTime, String endTime) {
        String first = String.format("您好，%s报名%s成功！", name, activityName);
        String time = String.format("%s至%s", startTime, endTime);
        String build = TemplateData.New()
                .setTouser(openid)
                .setTemplate_id(util.enroll)
                .setUrl("")
                .add("first", first, "")
                .add("keyword1", activityName, "")
                .add("keyword2", "月读活动", "")
                .add("keyword3", name, "")
                .add("keyword4", time, "")
                .add("remark", "感谢您的使用", "")
                .build();
        return build;
    }

    /**
     * 加盟咨询
     *
     * @param openid 服务号内的微信用户openid
     * @param name   用户姓名
     */
    public static String joinApply(String openid, String name, String phone, String location, String time) {
        String build = TemplateData.New()
                .setTouser(openid)
                .setTemplate_id(util.joinApply)
                .setUrl("")
                .add("first", "点评完成通知", "")
                .add("keyword1", phone + "（" + name + "）", "")
                .add("keyword2", time, "")
                .add("keyword3", location, "")
                .add("remark", "", "")
                .build();
        return build;
    }
}
